package java_1_12.book_management.user;


import java_1_12.book_management.book.BookList;
import java_1_12.book_management.operation.IOperation;

/**
 * 用户-抽象类：因为不知道是普通用户还是管理员
 */
public abstract class User {
    //用户名
    protected String name;
    //有权限操作的方法-从这个方法区分谁是用户谁是管理员
    protected IOperation[] operations;
    //什么是抽象的呢-菜单：不同用户菜单不一样，即管理员可以操作干的事和普通用户可以操作的选择不一样
    //只有具体子类才知道菜单长啥样
    public abstract int menu();
    //用户选择:用户选择不一样，干的事不一样
    public void doOperation(int choice, BookList bookList){
        //choice:默认选择从1开始，但是数组下标从0开始
        //根据用户选择的菜单选择相应的操作类
        operations[choice-1].work(bookList);
    }
}
